<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib uri="http://struts.apache.org/tags-html-el" prefix="html-el" %>
<%@taglib uri="http://struts.apache.org/tags-bean-el" prefix="bean-el" %>
<%@taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@taglib uri="http://struts.apache.org/tags-logic-el" prefix="logic-el" %>
<%@taglib uri="/WEB-INF/tld/application.tld" prefix="app" %>

<html-el:form action="/cadastroCupom.do">
	<html-el:hidden property="method" styleId="method"/>
	<table style="width:100%">
		<tr>
			<td align="center" valign="top" width="100%">
				<table style="width:600px">
					<tr>
						<td>
							<table cellpadding="1" cellspacing="4" bgcolor="#FAFAF5" style="width:100%;border:1px gray solid;border-bottom:0px">
								<tr>
									<td><b>Cadastro de Cupom</b></td>
								</tr>
							</table>				
							<table cellpadding="1" cellspacing="4" bgcolor="#FAFAF5" style="width:100%;border:1px gray solid">
								<tr>
									<td style="width:100%;padding:10px">
										<table style="width:100%">
											<tr>
												<td width="20" align="left" style="padding-left: 10px">Data:</td>
												<td colspan="1">
													<input type="text" name="dateDeConsultar" id="dateDeConsultar" value="${dataDe}" title="Data De" constraints="{datePattern:'dd/MM/yyyy', strict:true, max:'${dataAmanha}'}" data-dojo-type="dijit.form.DateTextBox" data-dojo-props="required:true, invalidMessage:'Data Inválida!'"/> &nbsp;ate&nbsp; 
													<input type="text" name="dateAteConsultar" id="dateAteConsultar" value="${dataAte}" title="Data Ate" constraints="{datePattern:'dd/MM/yyyy', strict:true, max:'${dataAmanha}'}" data-dojo-type="dijit.form.DateTextBox" data-dojo-props="required:true, invalidMessage:'Data Inválida!'"/>
												</td>
											</tr>
											<tr>
												<td width="60" align="left" style="padding-left: 10px">Usuario:</td>
												<td colspan="1">
													<app:comboUsuario name="usuarioConsultar"/>
												</td>
											</tr>
											<tr>
												<td colspan="2">
													<table width="100%">
														<tr>
															<td height="10"></td>
														</tr>
														<tr>
															<td align="right">
																<html-el:button property="btnConsultar" styleClass="button" value="Consultar" onclick="consultar()"/>
															</td>
														</tr>
													</table>
												</td>
											</tr>
										</table>
									</td>
								</tr>
								<logic-el:present name="listaResultado" scope="request">
									<tr>
										<td style="height:1px;border-bottom:1px;border-bottom-style:ridge;">&nbsp;</td>
									</tr>
									<tr>
										<td style="width:100%;height:290px;padding:10px;vertical-align:top">
											<div style="width:100%;height:300px;overflow-x:auto;">
												<table cellpadding="0" cellspacing="1" style="width:100%;">
													<tr>
														<th align="center" class="tbResultadoConsultaHeader"></th>
														<th align="center" class="tbResultadoConsultaHeader">Dt Digitacao</th>
														<th align="center" class="tbResultadoConsultaHeader">Usuario</th>
														<th align="center" class="tbResultadoConsultaHeader">Doador</th>
														<th align="center" class="tbResultadoConsultaHeader">Dt Cupom</th>
														<th align="center" class="tbResultadoConsultaHeader">COO</th>
														<th align="center" class="tbResultadoConsultaHeader">Valor</th>
													</tr>
													<logic-el:iterate id="bean" name="listaResultado" scope="request" indexId="i">
														<tr class='tbResultadoConsultaLinha${i%2}'> 
															<td width="25" align="center" class="tbResultadoConsultaInfo"><html-el:radio property="idSelecionado" value="${bean.codigo}" onclick="selectItem(this)"/></td>
															<td align="center" style="width:80px" class="tbResultadoConsultaInfo">
																<bean:write name="bean" property="cadastro" format="dd/MM/yyyy"/>
															</td>
															<td align="center" style="width:80px" class="tbResultadoConsultaInfo">
																<bean:write name="bean" property="usuarioCadastro.login"/>
															</td>
															<td align="center" style="width:140px" class="tbResultadoConsultaInfo" title="${bean.doador.razaoSocial}">${bean.doador.cnpj}</td>
															<td align="center" style="width:80px" class="tbResultadoConsultaInfo">
																<bean:write name="bean" property="data" format="dd/MM/yyyy"/>
															</td>
															<td align="center" style="width:110px" class="tbResultadoConsultaInfo">${bean.coo}</td>
															<td align="right" style="width:120px" class="tbResultadoConsultaInfo">
																<bean:write name="bean" property="valor" format="#,##0.00"/>
															</td>
														</tr>
													</logic-el:iterate>
													<html-el:hidden property="idSelecionado"/>
												</table>	
											</div>							
										</td>
									</tr>
										<td style="width:100%;padding:10px;vertical-align:top">
											<table style="width:100%">
												<tr>
													<td align="right">
														<logic-el:present name="listaResultado" scope="request">
															<html-el:button property="btnAlterar" styleId="btnAlterar" styleClass="button" value="Alterar" onclick="alterarIniciar()" disabled="true"/>
															<html-el:button property="btnExcluir" styleId="btnExcluir" styleClass="button" value="Excluir" onclick="excluir()" disabled="true"/>
														</logic-el:present>
													</td>
												</tr>
											</table>
										</td>										
								</logic-el:present>
							</table> 
						</td>
					</tr>
				</table>
			</td>
		</tr>
	</table>
	<div id="dialogAlterar" data-dojo-type="dijit.Dialog" title="Cupom - Alterar">
		<table>
			<tr>
				<td width="50" align="left">CNPJ:</td>
				<td align="left">
					<div data-dojo-type="dojo.store.Memory" data-dojo-id="doadorStore"></div>
					<input data-dojo-type="dijit.form.FilteringSelect"
					    value="y"
					    data-dojo-props="store:doadorStore, searchAttr:'cnpj', invalidMessage:'Doador não cadastrado!'"
					    name="doadorAlterar"
					    id="doadorAlterar"
					    title="Doador">	
				</td>												
			</tr>
			<tr>
				<td width="60" align="left">Data:</td>
				<td colspan="2">
					<input type="text" name="dataAlterar" id="dataAlterar" value="" title="Data" constraints="{datePattern:'dd/MM/yyyy', strict:true, max:'${dataAmanha}'}" data-dojo-type="dijit.form.DateTextBox" data-dojo-props="required:true, invalidMessage:'Data Inválida!'" onkeypress ="autoTab(this, event);"/>
				</td>
			</tr>
			<tr>
				<td width="60" align="left">COO:</td>
				<td colspan="2">
					<input type="text" name="cooAlterar" id="cooAlterar" value="" title="COO" size="6" maxlength="6" onkeypress="autoTab(this, event);"/>
				</td>
			</tr>
			<tr>
				<td width="60" align="left">Valor:</td>
				<td colspan="2">
					<input type="text" name="valorAlterar" id="valorAlterar" title="Valor" maxlength="15" size="20" style="text-align:right;" onkeypress="autoTab(this, event);return formatar_moeda(this,'.',',',event);"/>
				</td>
			</tr>
			<tr>
				<td colspan="2" align="right">
					<html-el:button property="btnAlterar" styleClass="button" value="Alterar" onclick="alterar()"/>
				</td>
			</tr>
		</table>
	</div>
</html-el:form>
<script language="javascript">

	dojo.addOnLoad(function() {
		init();		
		onFocus("dataDeConsultar");
	});
	
	var dataAtual = "${dataAtual}";
	
	function init() {		
		require(["dojo/_base/lang", "dojo/_base/xhr"], function(lang, xhr) {
			xhr.post({
		        url: "cadastroDoador.do?method=ajaxListar",
		        timeout: 7000,
		        content: {},
		        handleAs:"json",
		        load: function(dados) {
		        	doadorStore = dijit.byId('doadorStore');
		        	doadorStore = new dojo.store.Memory({data:dados});
		    		dijit.byId('doadorAlterar').set("store", doadorStore);
		        },
				error: function(data) {
					showAlertMessage("Erro ao realizar está operação! Tente novamente!");
		        }
		    });
		});	
	}

	jQuery(function($){ 
	   $("#doadorAlterar").mask("99.999.999/9999-99");
	});

	function selectItem(i) {
		document.getElementById("btnAlterar").disabled = false;
		document.getElementById("btnExcluir").disabled = false;
	}
	function consultar() {
		if(!mandatoryField('dateDeConsultar')) {
			return false;
		}
		if(!mandatoryField('dateAteConsultar')) {
			return false;
		}
		document.forms[0].method.value = "consultar";
		document.forms[0].submit();
	}

	function alterarIniciar() {
		if(!mandatoryRadio('idSelecionado', 'Alteração')) {
			return false;
		}
		require(["dojo/_base/lang", "dojo/_base/xhr"], function(lang, xhr) {
			xhr.post({
		        url: "cadastroCupom.do?method=alterarIniciar",
		        timeout: 3000,
		        handleAs: "json",
		        content: {idSelecionado:getSelectedRadio('idSelecionado').value},
		        load: function(data) {
		        	document.getElementById('doadorAlterar').value = data[0];
		        	document.getElementById('cooAlterar').value = data[1];
		        	dijit.byId('dataAlterar').set('value',data[2]);
		        	document.getElementById('valorAlterar').value = data[3];
					dijit.byId("dialogAlterar").show();
		        },
				error: function(data) {
					showAlertMessage("Erro ao realizar está operação! Tente novamente!");
		        }
		    });
		});
	}
	function alterar() {
		if(!mandatoryField('doadorAlterar')) {
			return false;
		}	
		if(!mandatoryField('dataAlterar')) {
			return false;
		}
		if(!mandatoryField('cooAlterar')) {
			return false;
		}
		if(!mandatoryField('valorAlterar')) {
			return false;
		}
		
		if(!dijit.byId("dataAlterar").isValid()) {
			alert("Data Invalida!");
			return false;
		}
		
		var dataInformada = document.getElementById('dataAlterar').value;
		if(dataInformada.length != 10) {
			alert("Data Inválida.\n Favor informar a data no formato dd/mm/aaaa.");
			document.getElementById('dataAlterar').focus();
			return false;
		}
		
		require(["dojo/_base/lang", "dojo/_base/xhr"], function(lang, xhr) {
			xhr.post({
		        url: "cadastroCupom.do?method=alterar",
		        timeout: 3000,
		        content: {
		        	doador:dijit.byId('doadorAlterar').item.codigo,
		        	coo:document.getElementById('cooAlterar').value,
		        	data:document.getElementById('dataAlterar').value,
		        	valor:document.getElementById('valorAlterar').value,
		        	idSelecionado:getSelectedRadio('idSelecionado').value},
		        load: function(data, ioArgs) {
		        	alert("Cupom alterado com sucesso!");
		        	consultar();
		        },
				error: function(data, ioArgs) {
					showAlertMessage("Erro ao realizar está operação! Tente novamente!");
		        }
		    });
		});
		
		dijit.byId("dialogAlterar").hide();
	}
	function excluir() {
		if(!mandatoryRadio('idSelecionado', 'Exclusão')) {
			return false;
		}
	
		if(!confirm("Deseja realmente excluir?")) {
			return false;
		}	
		
		require(["dojo/_base/lang", "dojo/_base/xhr"], function(lang, xhr) {
			xhr.post({
		        url: "cadastroCupom.do?method=excluir",
		        timeout: 3000,
		        handleAs: "json",
		        content: {idSelecionado:getSelectedRadio('idSelecionado').value},
		        load: function(data, ioArgs) {
		        	if(data[0]) {
			        	alert("Cupom excluído com sucesso!");
			        	consultar();
		        	} else {
		        		alert(data[1]);
		        		return false;
		        	}
		        },
				error: function(data, ioArgs) {
					showAlertMessage("Erro ao realizar está operação! Tente novamente!");
		        }
		    });
		});
	}
	
	function verificaCNPJ(field) {
		if(field.value != "") {
			require(["dojo/_base/lang", "dojo/_base/xhr"], function(lang, xhr) {
				xhr.post({
			        url: "cadastroCupom.do?method=verificaCNPJ",
			        timeout: 3000,
			        handleAs: "json",
			        content: {cnpj:field.value},
			        load: function(data) {
			        	if(data.razaoSocial) {
			        		alert("Cupom já cadastrado para o CNPJ informado!\nRazão Social: " + data.razaoSocial);
			        		field.focus();
			        	}
			        },
					error: function(data) {
						showAlertMessage("Erro ao realizar está operação! Tente novamente!");
			        }
			    });
			});				
		}		
	}
	
</script>
